3 %bcond_without apidocs # gtk-doc build
4 %bcond_without cloudprint # cloudprint print backend
5 %bcond_without cups # CUPS print backend
6 %bcond_without papi # PAPI print backend
7 %bcond_without broadway # Broadway target
8 %bcond_with mir # Mir target
9 %bcond_without wayland # Wayland target
10 %bcond_without static_libs # static library build
12 Summary: The GIMP Toolkit
13 Summary(cs.UTF-8): Sada nástrojů pro GIMP
14 Summary(de.UTF-8): Der GIMP-Toolkit
15 Summary(fi.UTF-8): GIMP-työkalukokoelma
16 Summary(fr.UTF-8): Le toolkit de GIMP
17 Summary(it.UTF-8): Il toolkit per GIMP
18 Summary(pl.UTF-8): GIMP Toolkit
19 Summary(tr.UTF-8): GIMP ToolKit arayüz kitaplığı
25 Source0: http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.22/gtk+-%{version}.tar.xz
26 # Source0-md5: 55e0198f100db98f31d1b0f9dc403794
27 Patch0: %{name}-papi.patch
28 URL: http://www.gtk.org/
29 BuildRequires: at-spi2-atk-devel >= 2.6.0
30 BuildRequires: atk-devel >= 1:2.16.0
31 BuildRequires: autoconf >= 2.62
32 BuildRequires: automake >= 1:1.11
33 # cairo-gobject + cairo-pdf,cairo-ps,cairo-svg
34 BuildRequires: cairo-gobject-devel >= 1.14.0
35 BuildRequires: colord-devel >= 0.1.9
36 %if %{with cups} || %{with papi}
37 BuildRequires: cups-devel >= 1:1.2
39 BuildRequires: docbook-dtd412-xml
40 BuildRequires: docbook-style-xsl
41 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
42 BuildRequires: gettext-tools >= 0.19.7
43 BuildRequires: glib2-devel >= 1:2.50.0
44 BuildRequires: gobject-introspection-devel >= 1.39.0
46 BuildRequires: gtk-doc >= 1.20
47 BuildRequires: gtk-doc-automake >= 1.20
49 BuildRequires: harfbuzz-devel >= 0.9
50 %{?with_cloudprint:BuildRequires: json-glib-devel >= 1.0}
51 BuildRequires: libepoxy-devel >= 1.0
52 BuildRequires: libstdc++-devel
53 BuildRequires: libtool >= 2:2.2.6
54 BuildRequires: libxml2-progs >= 1:2.6.31
55 BuildRequires: libxslt-progs >= 1.1.20
56 # mirclient >= 0.22.0, mircookie >= 0.17.0
57 %{?with_mir:BuildRequires: mir-devel >= 0.22.0}
58 BuildRequires: pango-devel >= 1:1.38.0
59 %{?with_papi:BuildRequires: papi-devel}
60 BuildRequires: perl-base
61 BuildRequires: pkgconfig
62 %{?with_cloudprint:BuildRequires: rest-devel >= 0.7}
63 BuildRequires: rpm-pythonprov
64 BuildRequires: rpmbuild(macros) >= 1.592
65 BuildRequires: sqlite3-devel
66 BuildRequires: tar >= 1:1.22
67 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
68 BuildRequires: xorg-lib-libXcomposite-devel
69 BuildRequires: xorg-lib-libXcursor-devel
70 BuildRequires: xorg-lib-libXdamage-devel
71 BuildRequires: xorg-lib-libXext-devel
72 BuildRequires: xorg-lib-libXfixes-devel
73 BuildRequires: xorg-lib-libXft-devel
74 BuildRequires: xorg-lib-libXi-devel
75 BuildRequires: xorg-lib-libXinerama-devel
76 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
77 BuildRequires: xorg-lib-libXrender-devel
79 %{?with_broadway:BuildRequires: zlib-devel}
81 BuildRequires: Mesa-libwayland-egl-devel
82 # wayland-client, wayland-cursor, wayland-scanner
83 BuildRequires: wayland-devel >= 1.9.91
84 BuildRequires: wayland-protocols >= 1.7
85 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
87 Requires: xorg-lib-libX11 >= 1.5.0
88 Requires(post,postun): glib2 >= 1:2.50.0
89 Requires: atk >= 1:2.16.0
90 Requires: cairo-gobject >= 1.14.0
91 Requires: gdk-pixbuf2 >= 2.31.0
92 Requires: glib2 >= 1:2.50.0
93 Requires: libepoxy >= 1.0
94 Requires: pango >= 1:1.38.0
95 Requires: xorg-lib-libXi >= 1.3.0
96 Requires: xorg-lib-libXrandr >= 1.5.0
98 Requires: wayland >= 1.9.91
99 Requires: xorg-lib-libxkbcommon >= 0.2.0
101 # evince is used as gtk-print-preview-command by default
102 Suggests: evince-backend-pdf
104 # cups is used by default if gtk+ is built with cups
105 Suggests: %{name}-cups = %{version}-%{release}
107 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
109 %define abivers 3.0.0
111 %if "%{_lib}" != "lib"
112 %define libext %(lib="%{_lib}"; echo ${lib#lib})
113 %define pqext -%{libext}
119 GTK+, which stands for the GIMP ToolKit, is a library for creating
120 graphical user interfaces for the X Window System. It is designed to
121 be small, efficient, and flexible. GTK+ is written in C with a very
122 object-oriented approach. GDK (part of GTK+) is a drawing toolkit
123 which provides a thin layer over Xlib to help automate things like
124 dealing with different color depths, and GTK is a widget set for
125 creating user interfaces.
127 %description -l cs.UTF-8
128 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
131 %description -l da.UTF-8
132 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
133 forskellige programmer.
135 %description -l de.UTF-8
136 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
137 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
139 %description -l fr.UTF-8
140 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
141 käytetään nyt myös useissa muissakin ohjelmissa.
143 %description -l it.UTF-8
144 Libreria X scritta per GIMP. Viene usata da diversi programmi.
146 %description -l pl.UTF-8
147 GTK+, która to biblioteka stała się podstawą programu GIMP, zawiera
148 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
149 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK+
150 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
151 (część GTK+) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
152 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
153 piksel). GTK (druga część GTK+) jest natomiast już zbiorem różnego
154 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
156 %description -l tr.UTF-8
157 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
158 programlarca da kullanılmaktadır.
160 %package -n gtk-update-icon-cache
161 Summary: Utility to update icon cache used by GTK+ library
162 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK+
163 Group: Applications/System
164 Requires: gdk-pixbuf2 >= 2.31.0
165 Requires: glib2 >= 1:2.50.0
167 %description -n gtk-update-icon-cache
168 Utility to update icon cache used by GTK+ library.
170 %description -n gtk-update-icon-cache -l pl.UTF-8
171 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
175 Summary: GTK+ header files and development documentation
176 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
177 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
178 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
179 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
180 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
181 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
182 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK+
183 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
184 Group: X11/Development/Libraries
185 Requires: %{name} = %{version}-%{release}
186 Requires: at-spi2-atk-devel >= 2.6.0
187 Requires: atk-devel >= 1:2.16.0
188 Requires: cairo-gobject-devel >= 1.14.0
189 Requires: gdk-pixbuf2-devel >= 2.31.0
190 Requires: glib2-devel >= 1:2.50.0
191 Requires: pango-devel >= 1:1.38.0
192 Requires: shared-mime-info
195 Header files and development documentation for the GTK+ libraries.
197 %description devel -l pl.UTF-8
198 Pliki nagłówkowe i dokumentacja do bibliotek GTK+.
201 Summary: GTK+ static libraries
202 Summary(pl.UTF-8): Biblioteki statyczne GTK+
203 Group: X11/Development/Libraries
204 Requires: %{name}-devel = %{version}-%{release}
207 GTK+ static libraries.
209 %description static -l pl.UTF-8
210 Biblioteki statyczne GTK+
213 Summary: GTK+ API documentation
214 Summary(pl.UTF-8): Dokumentacja API GTK+
216 Requires: gtk-doc-common
217 %if "%{_rpmversion}" >= "5"
222 GTK+ API documentation.
224 %description apidocs -l pl.UTF-8
225 Dokumentacja API GTK+.
228 Summary: GTK+ - example programs
229 Summary(pl.UTF-8): GTK+ - programy przykładowe
230 Group: X11/Development/Libraries
231 Requires(post,postun): glib2 >= 1:2.50.0
232 Requires: %{name}-devel = %{version}-%{release}
234 %description examples
235 GTK+ - example programs.
237 %description examples -l pl.UTF-8
238 GTK+ - przykładowe programy.
241 Summary: Cloudprint printing module for GTK+
242 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez Cloudprint
244 Requires: %{name} = %{version}-%{release}
246 %description cloudprint
247 Cloudprint printing module for GTK+.
249 %description cloudprint -l pl.UTF-8
250 Moduł GTK+ do drukowania przez Cloudprint.
253 Summary: CUPS printing module for GTK+
254 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez CUPS
256 Requires: %{name} = %{version}-%{release}
259 CUPS printing module for GTK+.
261 %description cups -l pl.UTF-8
262 Moduł GTK+ do drukowania przez CUPS.
265 Summary: PAPI printing module for GTK+
266 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez PAPI
268 Requires: %{name} = %{version}-%{release}
272 PAPI printing module for GTK+.
274 %description papi -l pl.UTF-8
275 Moduł GTK+ do drukowania przez PAPI.
278 %setup -q -n gtk+-%{version}
281 # for packaging clean examples
282 # TODO: add am patch to do it like demos/gtk-demo via some configurable dir
283 # NOTE: make install so far installs only demos/gtk-demo
285 cp -a demos examples _examples
287 # upstream used too new wayland for make dist in 3.10.6 - force regeneration
288 touch gdk/wayland/protocol/gtk-shell.xml
291 CPPFLAGS="%{rpmcppflags}%{?with_papi: -I/usr/include/papi}"
292 %{?with_apidocs:%{__gtkdocize}}
299 --disable-silent-rules \
300 %{!?with_cloudprint:--disable-cloudprint} \
302 %{!?with_papi:--disable-papi} \
303 %{?debug:--enable-debug=yes} \
304 %{__enable_disable apidocs gtk-doc} \
306 %{__enable_disable static_libs static} \
307 %{?with_broadway:--enable-broadway-backend} \
308 %{?with_mir:--enable-mir-backend} \
309 %{?with_wayland:--enable-wayland-backend} \
310 --enable-x11-backend \
313 --with-html-dir=%{_gtkdocdir}
316 democodedir=%{_examplesdir}/%{name}-%{version}/demos/gtk-demo
319 rm -rf $RPM_BUILD_ROOT
320 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/engines
321 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/theming-engines
324 democodedir=%{_examplesdir}/%{name}-%{version}/demos/gtk-demo \
325 DESTDIR=$RPM_BUILD_ROOT
327 touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
328 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules
330 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
331 cp -a _examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
333 # shut up check-files (static modules and *.la for modules)
334 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/*/*.la \
335 %{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/*/*.a}
337 %if "%{_lib}" != "lib"
338 # We need to have 32-bit and 64-bit binaries as they have hardcoded LIBDIR.
339 # (needed when multilib is used)
340 mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0{,%{pqext}}
343 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
344 # unsupported by glibc
345 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
347 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
349 %find_lang %{name} --all-name
351 %{!?with_apidocs:%{__rm} -r $RPM_BUILD_ROOT%{_gtkdocdir}/{gdk3,gtk3}}
354 rm -rf $RPM_BUILD_ROOT
358 %glib_compile_schemas
360 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
365 if [ "$1" != "0" ]; then
367 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
369 %glib_compile_schemas
374 %glib_compile_schemas
377 %glib_compile_schemas
379 %files -f %{name}.lang
380 %defattr(644,root,root,755)
381 %doc AUTHORS NEWS README
382 %{?with_broadway:%attr(755,root,root) %{_bindir}/broadwayd}
383 %attr(755,root,root) %{_bindir}/gtk-launch
384 %attr(755,root,root) %{_bindir}/gtk-query-immodules-3.0%{pqext}
385 %attr(755,root,root) %{_libdir}/libgailutil-3.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libgailutil-3.so.0
387 %attr(755,root,root) %{_libdir}/libgdk-3.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libgdk-3.so.0
389 %attr(755,root,root) %{_libdir}/libgtk-3.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libgtk-3.so.0
392 %dir %{_libdir}/gtk-3.0
393 %dir %{_libdir}/gtk-3.0/modules
394 %dir %{_libdir}/gtk-3.0/%{abivers}
395 %dir %{_libdir}/gtk-3.0/%{abivers}/engines
396 %dir %{_libdir}/gtk-3.0/%{abivers}/theming-engines
397 %dir %{_libdir}/gtk-3.0/%{abivers}/immodules
398 %dir %{_libdir}/gtk-3.0/%{abivers}/printbackends
399 %ghost %{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
400 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-file.so
401 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-lpr.so
402 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-am-et.so
403 %{?with_broadway:%attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-broadway.so}
404 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cedilla.so
405 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cyrillic-translit.so
406 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-inuktitut.so
407 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ipa.so
408 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-multipress.so
409 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-thai.so
410 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-er.so
411 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-et.so
412 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-viqr.so
413 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-xim.so
414 %{_libdir}/girepository-1.0/Gdk-3.0.typelib
415 %{_libdir}/girepository-1.0/GdkX11-3.0.typelib
416 %{_libdir}/girepository-1.0/Gtk-3.0.typelib
418 %dir %{_sysconfdir}/gtk-3.0
419 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gtk-3.0/im-multipress.conf
420 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml
421 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml
422 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
423 %dir %{_datadir}/themes/Default/gtk-3.0
424 %{_datadir}/themes/Default/gtk-3.0/gtk-keys.css
425 %dir %{_datadir}/themes/Emacs
426 %dir %{_datadir}/themes/Emacs/gtk-3.0
427 %{_datadir}/themes/Emacs/gtk-3.0/gtk-keys.css
428 %{?with_broadway:%{_mandir}/man1/broadwayd.1*}
429 %{_mandir}/man1/gtk-launch.1*
430 %{_mandir}/man1/gtk-query-immodules-3.0.1*
432 %files -n gtk-update-icon-cache
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{_bindir}/gtk-encode-symbolic-svg
435 %attr(755,root,root) %{_bindir}/gtk-update-icon-cache
436 %{_mandir}/man1/gtk-encode-symbolic-svg.1*
437 %{_mandir}/man1/gtk-update-icon-cache.1*
440 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_bindir}/gtk-builder-tool
443 %attr(755,root,root) %{_bindir}/gtk-query-settings
444 %attr(755,root,root) %{_libdir}/libgailutil-3.so
445 %attr(755,root,root) %{_libdir}/libgdk-3.so
446 %attr(755,root,root) %{_libdir}/libgtk-3.so
447 %{_includedir}/gail-3.0
448 %{_includedir}/gtk-3.0
449 %{_aclocaldir}/gtk-3.0.m4
450 %{_pkgconfigdir}/gail-3.0.pc
451 %{_pkgconfigdir}/gdk-3.0.pc
452 %{_pkgconfigdir}/gdk-x11-3.0.pc
453 %{_pkgconfigdir}/gtk+-3.0.pc
454 %{_pkgconfigdir}/gtk+-unix-print-3.0.pc
455 %{_pkgconfigdir}/gtk+-x11-3.0.pc
457 %{_pkgconfigdir}/gdk-broadway-3.0.pc
458 %{_pkgconfigdir}/gtk+-broadway-3.0.pc
461 %{_pkgconfigdir}/gdk-mir-3.0.pc
462 %{_pkgconfigdir}/gtk+-mir-3.0.pc
465 %{_pkgconfigdir}/gdk-wayland-3.0.pc
466 %{_pkgconfigdir}/gtk+-wayland-3.0.pc
468 %{_datadir}/gettext/its/gtkbuilder.its
469 %{_datadir}/gettext/its/gtkbuilder.loc
471 %{_datadir}/gir-1.0/Gdk-3.0.gir
472 %{_datadir}/gir-1.0/GdkX11-3.0.gir
473 %{_datadir}/gir-1.0/Gtk-3.0.gir
474 %{_mandir}/man1/gtk-builder-tool.1*
475 %{_mandir}/man1/gtk-query-settings.1*
477 %if %{with static_libs}
479 %defattr(644,root,root,755)
480 %{_libdir}/libgailutil-3.a
481 %{_libdir}/libgdk-3.a
482 %{_libdir}/libgtk-3.a
487 %defattr(644,root,root,755)
488 %{_gtkdocdir}/gail-libgail-util3
494 %defattr(644,root,root,755)
495 %attr(755,root,root) %{_bindir}/gtk3-demo
496 %attr(755,root,root) %{_bindir}/gtk3-demo-application
497 %attr(755,root,root) %{_bindir}/gtk3-icon-browser
498 %attr(755,root,root) %{_bindir}/gtk3-widget-factory
499 %{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
500 %{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
501 %{_desktopdir}/gtk3-demo.desktop
502 %{_desktopdir}/gtk3-icon-browser.desktop
503 %{_desktopdir}/gtk3-widget-factory.desktop
504 %{_iconsdir}/hicolor/*/apps/gtk3-demo-symbolic.symbolic.png
505 %{_iconsdir}/hicolor/*/apps/gtk3-demo.png
506 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory-symbolic.symbolic.png
507 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory.png
508 %{_mandir}/man1/gtk3-demo.1*
509 %{_mandir}/man1/gtk3-demo-application.1*
510 %{_mandir}/man1/gtk3-icon-browser.1*
511 %{_mandir}/man1/gtk3-widget-factory.1*
512 %{_examplesdir}/%{name}-%{version}
514 %if %{with cloudprint}
516 %defattr(644,root,root,755)
517 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-cloudprint.so
522 %defattr(644,root,root,755)
523 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-cups.so
528 %defattr(644,root,root,755)
529 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-papi.so